this is how it works